import {deepCopy} from "@/utils";

export default {
  name: 'LogisticTypePriceMixin',
  data(){
    return {
      defaultLogisticTypePrice: {
        weight: 0, // 重量
        PSCFirst: 0, // 首件PSC
        PSCAppend: 0, // 续件PSC
      }, // 商品体积重
    }
  },
  methods:{
    // 添加重量
    addLogisticPrice(arr) {
      arr.push(deepCopy(this.defaultLogisticTypePrice))
    },
    // 移除某个重量范围
    removeItem(arr, index){
      arr.splice(index,1)
    },
    /**
     * 校验数据是否正常
     * @param arr
     * @returns {boolean}
     */
    checkLogisticTypePrice(arr){
      if(arr.length === 0){
        this.$errorMessage('请至少填写一个体积重价格')
        return false;
      }
      const weight = []; // 校验是否有重复的商品重量
      const flag = arr.some(item=>{
        // 没填的数值默认为0
        item.weight = item.weight ? item.weight : 0;
        item.PSCFirst = item.PSCFirst ? item.PSCFirst : 0;
        item.PSCAppend = item.PSCAppend ? item.PSCAppend : 0;
        if(weight.indexOf(item.weight) !== -1){
          return true
        }else{
          weight.push(item.weight)
          return false
        }
      })
      // 校验没通过代表有相同的重量
      if(flag){
        this.$errorMessage('特殊快递存在相同的体积重')
        return false;
      }
      return true
    }
  }
}
